# 在Python中，定义一个函数要使用def语句，依次写出函数名、括号、括号中的参数和冒号:，然后，在缩进块中编写函数体，函数的返回值用return语句返回。

# 例如定义一个求绝对值的函数
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

print(my_abs(-99))

# 检查类型 只允许int和float
def my_type(x):
    return isinstance(x, (int, float))

print(my_type('11')) # False
print(my_type(11)) # True


# 导入math包
import math
def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny  # 其实返回多个值是返回了一个tuple

# 其实返回值是一个tuple！
# 但是，在语法上，返回一个tuple可以省略括号，而多个变量可以同时接收一个tuple，按位置赋给对应的值（类似js解构赋值）
# 所以，Python的函数返回多值其实就是返回一个tuple，但写起来更方便。
x, y = move(100, 100, 60, math.pi / 6)
print(x, y)